package co.edu.uniquindio.gui;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.Date;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import co.edu.uniquindio.delegados.Login;
import co.edu.uniquindio.delegados.SubastaDelegado;
import co.edu.uniquindio.delegados.UsuarioDelegado;
import co.edu.uniquindio.logica.SubHolandesa;
import co.edu.uniquindio.logica.Vendedor;
import datechooser.beans.DateChooserCombo;
/**
 * esta clase representa una ventana para un Pais y usa el patron de diseño Singleton para la creacion de esta
 * @author Andres Felipe Abril
 * @author Luis Enrique Robledo
 */
public class VentanaSubastas extends JFrame implements ActionListener {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	public static VentanaSubastas me;
	private JTextField campoNumSub;
	private JTextField campoPrecio;
	private DateChooserCombo combo;
	private DateChooserCombo combo1;
	private  JButton btnAceptar;
	private UsuarioDelegado users=UsuarioDelegado.getUsuarioDelegado();
	private Login login=Login.getLogin();
	
	private ButtonGroup miGroup;
	private JRadioButton radioSubastaInglesa;
	private JRadioButton radioSubastaHolandesa;
	private JRadioButton radioSubastaSilenciosa; 
	private SubastaDelegado subasta= SubastaDelegado.getSubastaDelegado();

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					VentanaSubastas frame = new VentanaSubastas();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public VentanaSubastas() 
	{
		//etiquetaVendedor.setText(ven.getCorreo());
		setTitle("Subastas");
		initGUI();	
	}
	/**
	 * este metodo em permite crear instancia unica de la clase VentanaSubastas 
	 * @return
	 */
	public static VentanaSubastas getVentanaSubastas()
	{
		if (me == null)
			me = new VentanaSubastas();
		return me;	
	}
	/**
	 * este metodo inicializa los componentes de la clase
	 */
	public void initGUI()
	{
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 585, 374);
		contentPane = new JPanel();
		contentPane.setForeground(Color.WHITE);
		contentPane.setBackground(Color.BLACK);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JLabel lblPorFavorIngrese = new JLabel("Por favor ingrese los datos para agregar una subasta");
		lblPorFavorIngrese.setForeground(Color.WHITE);
		lblPorFavorIngrese.setBounds(12, 12, 400, 25);
		contentPane.add(lblPorFavorIngrese);

		JLabel lblNumeroSubasta = new JLabel("Numero Subasta :  ");
		lblNumeroSubasta.setForeground(Color.WHITE);
		lblNumeroSubasta.setBounds(12, 49, 114, 25);
		contentPane.add(lblNumeroSubasta);

		campoNumSub = new JTextField();
		campoNumSub.setBounds(135, 49, 114, 25);
		contentPane.add(campoNumSub);
		campoNumSub.setColumns(10);

		JLabel lblPrecioBase = new JLabel("Precio Base : ");
		lblPrecioBase.setForeground(Color.WHITE);
		lblPrecioBase.setBounds(12, 87, 108, 25);
		contentPane.add(lblPrecioBase);

		campoPrecio = new JTextField();
		campoPrecio.setBounds(135, 86, 114, 26);
		contentPane.add(campoPrecio);
		campoPrecio.setColumns(10);

		JLabel lblFechaInicio = new JLabel("Fecha Inicio : ");
		lblFechaInicio.setForeground(Color.WHITE);
		lblFechaInicio.setBounds(12, 135, 97, 25);
		contentPane.add(lblFechaInicio);

		JLabel lblFechaFin = new JLabel("Fecha Fin :");
		lblFechaFin.setForeground(Color.WHITE);
		lblFechaFin.setBounds(12, 180, 97, 25);
		contentPane.add(lblFechaFin);

		btnAceptar = new JButton("Aceptar");
		btnAceptar.setBounds(135, 304, 100, 26);
		btnAceptar.addActionListener(this);
		contentPane.add(btnAceptar);

		combo= new DateChooserCombo();
		combo.setBounds(135, 135, 114, 26);

		contentPane.add(combo);

		combo1=new DateChooserCombo();
		combo1.setBounds(135, 180, 114, 25);
		contentPane.add(combo1);

		JLabel lblNewLabel = new JLabel("Tipo de subasta");
		lblNewLabel.setForeground(Color.WHITE);
		lblNewLabel.setBounds(12, 228, 114, 16);
		contentPane.add(lblNewLabel);

		JSeparator separator = new JSeparator();
		separator.setForeground(Color.WHITE);
		separator.setBounds(12, 242, 551, 2);
		contentPane.add(separator);

		miGroup = new ButtonGroup();
		

		radioSubastaInglesa = new JRadioButton("Subasta inglesa");
		radioSubastaInglesa.setForeground(Color.WHITE);
		radioSubastaInglesa.setBounds(12, 256, 128, 18);
		miGroup.add(radioSubastaInglesa);
		contentPane.add(radioSubastaInglesa);

		radioSubastaHolandesa = new JRadioButton("Subasta holandesa");
		radioSubastaHolandesa.setForeground(Color.WHITE);
		radioSubastaHolandesa.setBounds(183, 256, 145, 18);
		miGroup.add(radioSubastaHolandesa);
		contentPane.add(radioSubastaHolandesa);

		radioSubastaSilenciosa = new JRadioButton("Subasta silenciosa");
		radioSubastaSilenciosa.setForeground(Color.WHITE);
		radioSubastaSilenciosa.setBounds(374, 256, 136, 18);
		miGroup.add(radioSubastaSilenciosa);
		contentPane.add(radioSubastaSilenciosa);


	}
	
	/**
	 * este metodo me permite manejar y/o controlan los eventos que generan los componentes de la clase 
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Autogenerated method stub
		if(e.getSource()==btnAceptar)
		{
			try {
				
				Vendedor ven=(Vendedor)login.getPersona();
				Calendar calendario=combo1.getSelectedDate();
				Date fecha= calendario.getTime();
				Calendar calendario2=combo1.getSelectedDate();
				Date fecha2= calendario2.getTime();
				System.out.println(fecha);
				System.out.println(ven.getNombre());
				int numSub=Integer.parseInt(campoNumSub.getText());
				Double precio= Double.parseDouble(campoPrecio.getText());
				
				if(radioSubastaHolandesa.isSelected())
				{
					System.out.println("entra pero jum");
					SubHolandesa sub = new SubHolandesa(numSub, ven, precio,fecha,fecha2);
					try {
						subasta.crearSubastaHolandesa(sub);
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						JOptionPane.showMessageDialog(this, e1.getLocalizedMessage());
					}
					
				}
//				if(radioSubastaInglesa.isSelected())
//				{
//		
//				}
//				if(radioSubastaSilenciosa.isSelected())
//				{
//		//			SubSilenciosa sub=new SubSilenciosa(numSub, ven, precio);
//			//		subasta.crearSubastaSilenciosa(sub, ven.getCedula());
//				}

			} catch (NumberFormatException e2) {
				// TODO: handle exception

			}


		}
	}

}
